package com.tencent.sr.iris.activity.restapi.task;

import com.tencent.sr.iris.activity.interfaces.client.task.IrisGroupTaskBoardClient;
import com.tencent.sr.iris.activity.interfaces.request.group.AdvisorGroupTaskRequest;
import com.tencent.sr.iris.activity.interfaces.request.group.AdvisorGroupTaskSecondRequest;
import com.tencent.sr.iris.activity.interfaces.request.group.AdvisorGroupTaskThirdRequest;
import com.tencent.sr.iris.activity.interfaces.request.group.GroupTaskRequest;
import com.tencent.sr.iris.activity.interfaces.request.group.GroupTaskSecondRequest;
import com.tencent.sr.iris.activity.interfaces.request.group.RankConfigRequest;
import com.tencent.sr.iris.activity.interfaces.request.group.TaskStatisticsRequest;
import com.tencent.sr.iris.activity.interfaces.response.group.*;
import com.tencent.sr.iris.activity.interfaces.response.group.operate.OperateSecondBoardResponse;
import com.tencent.sr.iris.activity.service.task.GroupTaskBoardService;
import com.tencent.sr.rmall.common.primitive.HttpResult;
import com.tencent.sr.rmall.common.request.PaginationRequest;
import com.tencent.sr.rmall.common.response.PaginationResponse;
import io.swagger.annotations.Api;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Api(tags = "团长任务看板", value = "团长任务看板相关接口")
@RestController
@RequestMapping(value = {"/api/v1/iris/iris-activity-core-service/task/board"})
public class GroupTaskBoardController implements IrisGroupTaskBoardClient {

    @Resource
    private GroupTaskBoardService groupTaskBoardService;

    @Override
    public HttpResult<PaginationResponse<GroupTaskBoardResponse>> queryGroupTaskBoard(
            PaginationRequest<GroupTaskRequest> request) {
        return HttpResult.succ(groupTaskBoardService.queryGroupTaskBoard(request));
    }

    @Override
    public HttpResult<PaginationResponse<GroupTaskBoardSecondResponse>> queryGroupSecondTaskBoard(
            PaginationRequest<GroupTaskSecondRequest> request) {
        return HttpResult.succ(groupTaskBoardService.queryGroupSecondTaskBoard(request));
    }

    @Override
    public HttpResult<PaginationResponse<GroupNormalTaskSecondResponse>> queryGroupTaskSecondBoardNormal(
            PaginationRequest<GroupTaskSecondRequest> request) {
        return HttpResult.succ(groupTaskBoardService.queryGroupTaskSecondBoardNormal(request));
    }

    @Override
    public HttpResult<PaginationResponse<AdvisorBoardResponse>> queryAdvisorBoard(
            PaginationRequest<AdvisorGroupTaskRequest> request) {
        return HttpResult.succ(groupTaskBoardService.queryAdvisorBoard(request));
    }

    @Override
    public HttpResult<GroupTaskPaginationResponse<OperateSecondBoardResponse>> queryAdvisorSecondBoard(
            PaginationRequest<AdvisorGroupTaskSecondRequest> request) {
        return HttpResult.succ(groupTaskBoardService.queryAdvisorSecondBoard(request));
    }

    @Override
    public HttpResult<PaginationResponse<AdvisorBoardInviteSecondResponse>> queryAdvisorSecondBoardInvite(
            PaginationRequest<AdvisorGroupTaskSecondRequest> request) {
        return HttpResult.succ(groupTaskBoardService.queryAdvisorSecondBoardInvite(request));
    }

    @Override
    public HttpResult<GroupTaskPaginationResponse<AdvisorBoardSprintSecondResponse>> queryAdvisorSecondBoardSprint(
            PaginationRequest<AdvisorGroupTaskSecondRequest> request) {
        return HttpResult.succ(groupTaskBoardService.queryAdvisorSecondBoardSprint(request));
    }

    @Override
    public HttpResult<PaginationResponse<AdvisorBoardFirstOrderSecondResponse>> queryAdvisorSecondBoardFirstOrder(
            PaginationRequest<AdvisorGroupTaskSecondRequest> request) {
        return HttpResult.succ(groupTaskBoardService.queryAdvisorSecondBoardFirstOrder(request));
    }

    @Override
    public HttpResult<PaginationResponse<AdvisorBoardCommissionSecondResponse>> queryAdvisorSecondBoardCommission(
            PaginationRequest<AdvisorGroupTaskSecondRequest> request) {
        return HttpResult.succ(groupTaskBoardService.queryAdvisorSecondBoardCommission(request));
    }

    @Override
    public HttpResult<PaginationResponse<AdvisorNormalTaskSecondResponse>> queryAdvisorSecondBoardNormal(
            PaginationRequest<AdvisorGroupTaskSecondRequest> request) {
        return HttpResult.succ(groupTaskBoardService.queryAdvisorSecondBoardNormal(request));
    }

    @Override
    public HttpResult<PaginationResponse<AdvisorBoardRankSecondResponse>> queryAdvisorSecondBoardRank(
            PaginationRequest<AdvisorGroupTaskSecondRequest> request) {
        return HttpResult.succ(groupTaskBoardService.queryAdvisorSecondRank(request));
    }

    @Override
    public HttpResult<PaginationResponse<GroupTaskBoardSecondResponse>> queryAdvisorThirdBoard(
            PaginationRequest<AdvisorGroupTaskThirdRequest> request) {
        return HttpResult.succ(groupTaskBoardService.queryAdvisorThirdBoard(request));
    }

    @Override
    public HttpResult<PaginationResponse<GroupTaskBoardSecondResponse>> queryAdvisorThirdBoardInvite(
            PaginationRequest<AdvisorGroupTaskThirdRequest> request) {
        return HttpResult.succ(groupTaskBoardService.queryAdvisorThirdBoardInvite(request));
    }

    @Override
    public HttpResult<PaginationResponse<GroupTaskBoardSecondResponse>> queryAdvisorThirdBoardFirstOrder(
            PaginationRequest<AdvisorGroupTaskThirdRequest> request) {
        return HttpResult.succ(groupTaskBoardService.queryAdvisorThirdBoardFirstOrder(request));
    }

    @Override
    public HttpResult<PaginationResponse<GroupTaskBoardSecondResponse>> queryAdvisorThirdBoardSprint(
            PaginationRequest<AdvisorGroupTaskThirdRequest> request) {
        return HttpResult.succ(groupTaskBoardService.queryAdvisorThirdBoardSprint(request));
    }

    @Override
    public HttpResult<PaginationResponse<AdvisorBoardCommissionThirdResponse>> queryAdvisorThirdBoardCommission(
            PaginationRequest<AdvisorGroupTaskThirdRequest> request) {
        return HttpResult.succ(groupTaskBoardService.queryAdvisorThirdBoardCommission(request));
    }

    @Override
    public HttpResult<PaginationResponse<GroupNormalTaskSecondResponse>> queryAdvisorThirdBoardNormal(
            PaginationRequest<AdvisorGroupTaskThirdRequest> request) {
        return HttpResult.succ(groupTaskBoardService.queryAdvisorThirdBoardNormal(request));
    }

    @Override
    public HttpResult<PaginationResponse<GroupTaskBoardSecondResponse>> queryAdvisorThirdBoardRank(
            PaginationRequest<AdvisorGroupTaskThirdRequest> request) {
        return HttpResult.succ(groupTaskBoardService.queryAdvisorThirdRank(request));
    }

    @Override
    public HttpResult<TaskStatisticsResponse> queryAdvisorTaskStatistics(TaskStatisticsRequest req) {
        return HttpResult.succ(groupTaskBoardService.queryAdvisorTaskStatistics(req));
    }

    @Override
    public HttpResult<TaskStatisticsResponse> querySellerTaskStatistics(TaskStatisticsRequest req) {
        return HttpResult.succ(groupTaskBoardService.querySellerTaskStatistics(req));
    }

    @Override
    public HttpResult<List<RankAwardConfigResponse>> queryRankConfigs(RankConfigRequest request) {
        return HttpResult.succ(groupTaskBoardService.queryRankConfigs(request));
    }

}
